The invention relates to the field of networked data processing systems. In particular, the invention relates to a method and an apparatus for generating a predictive data structure for an application when the application is operating offline.
Internet users access services provided by internet service providers for performing interactions such as personal banking, purchasing goods online, information retrieval or for launching other services from within a service provider's online environment.
In order to access online services users operate client devices for sending requests to a server in order to request access to resources provided by one or more applications.
A server receives requests for resources and returns the requested resources to the requesting client device. Typically, Hypertext Transfer Protocol (HTTP) is deployed which defines the means in which a client device interacts with one or more servers across the internet. HTTP is a ‘request-reply’ protocol in which the client sends a request message to the server containing the URL of the required resource. The server looks up a pathname and, if it exists, sends back the resource in a reply to the client. HTTP allows for content negotiation and authentication.
The above type of interaction works well as long as the client and the server can continually communicate with each other i.e. sending requests for resources and receiving back from the server the requested resource. This request reply interaction relies on an open and continual communication path across the network.
A problem arises when the network, for whatever reason, is temporarily unavailable. The consequence of the network being unavailable is that a transaction is unable to complete. Often, at this point, the application which is used to request the one or more resources, typically a web browser, moves in to an operational state termed ‘working offline’. When working in ‘offline’ mode scripts and/or HTML embedded in a web page are unable to execute because the software needs to make a call to a server in order to load further data.
A typical solution to the above problem is to cache the requested resource i.e. the web page. However, a drawback with this approach is that the cached copy of the resource may comprise ‘out of date’ data and thus produce incorrect results, or there may be no cached version because of security or privacy reasons.